//
// Created by denglibin on 19-10-25.
//
#include "wrap.h"
#include <stdlib.h>
#include <stdio.h>
#include <unistd.h>
#include <errno.h>
int Socket (int __domain, int __type, int __protocol){
    int ret = socket(__domain, __type, __protocol);
    if(ret < 0){
        perror("socket:");
        exit(-1);
    }
    return ret;
}

int Bind(int __fd, __CONST_SOCKADDR_ARG __addr, socklen_t __len){
    int ret =  bind( __fd,  __addr,  __len);
    if(ret < 0){
        perror("bind:");
        exit(-1);
    }
    return ret;
}

int Listen (int __fd, int __n) {
    int ret = listen(__fd, __n);
    if(ret < 0){
        perror("listen:");
        exit(-1);
    }
    return ret;
}

int Accept (int __fd, __SOCKADDR_ARG __addr,
            socklen_t *__restrict __addr_len){
    int ret = accept(__fd, __addr, __addr_len);
    if(ret < 0){
        perror("accept:");
        if(errno == EINTR){
            return ret;
        }
        exit(-1);
    }
    return ret;
}

ssize_t Send (int __fd, const void *__buf, size_t __n, int __flags){
    ssize_t ret = send(__fd, __buf, __n, __flags);
    if(ret < 0){
        perror("send：");
    }
    return ret;
}
int Close(int fd){
   int ret =  close(fd);
   if(ret < 0){
       perror("close:");
   }
   return ret;
}

